#ifndef _app_manager_fs_H__
#define _app_manager_fs_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#include "app_manager_type.h"

#if APP_MANAGER_ENABLE_APP_UNINSTALL

    /**
     * @brief 注册用于数据管理的文件系统回调函数,在使用其他函数之前必须进行注册,
     *          程序对对app_manager_lenth和app_manager_list两个键进行读写
     *          其中，app_manager_lenth固定为2字节uint16_t，app_manager_list为动态长度
     * @param fs_write
     * @param fs_read
     * @return app_manager_ret_t
     */
    app_manager_ret_t app_manager_register_fs_cb(void (*fs_write)(const char *path, const void *data, size_t size), void (*fs_read)(const char *path, void *data, size_t size));

    app_manager_ret_t app_manager_fs_init();

    app_manager_ret_t app_manager_fs_write(const char *path, const void *data, size_t size);
    app_manager_ret_t app_manager_fs_read(const char *path, void *data, size_t size);

    app_manager_ret_t app_manager_fs_save_change_data();

#endif

#ifdef __cplusplus
}
#endif
#endif
